package com.dykj.fireFighting.api.base.system.service;


import com.dykj.fireFighting.api.base.system.entity.SysDirectory;
import com.dykj.fireFighting.api.base.system.vo.SysDirectoryVo;
import com.dykj.fireFighting.common.core.service.IBaseService;

import java.util.List;
import java.util.Map;

/**
 * 数据字典
 *
 * @Author hxb
 * @Date 2021-06-19 15:12:17
 */
public interface ISysDirectoryService extends IBaseService<SysDirectory> {

    /**
     * 获取变量树表
     *
     * @param par
     * @return
     */
    List<SysDirectoryVo> querySysDirectory(Map<String, Object> par);

    /**
     * 根据类型获取字典数据
     *
     * @param typeList
     * @return
     */
    List<SysDirectoryVo> queryDirectoryByType(List<String> typeList);

    /**
     * 递归查询所有子数据字典
     *
     * @param sysDirectoryList
     * @param code
     * @return
     */
    List<SysDirectory> getChildSysDirectoryList(List<SysDirectory> sysDirectoryList, String code);

    /**
     * 查询子字典数据
     *
     * @param parentCode
     * @return
     */
    List<SysDirectory> getByParentCode(String parentCode);

    /**
     * 根据子级id获取父级字典
     *
     * @param sysDirectoryList
     * @param code
     * @return
     */
    List<SysDirectory> getParentDictTree(List<SysDirectory> sysDirectoryList, String code);

    /**
     * 删除字典
     *
     * @param id
     * @return
     */
    int removeDirectoryById(String id);

    /**
     * 获取字典信息
     *
     * @param id
     * @return
     */
    SysDirectoryVo getSysDirectoryVoById(Integer id);

    /**
     * 根据字典类型获取字典数据
     * level < 3
     *
     * @param dtyKeyCode
     * @return
     */
    List<SysDirectory> queryDataByType(String dtyKeyCode);

    /**
     * 根据字典code获取字典数据
     *
     * @param code
     * @return
     */
    SysDirectory queryByCode(String code);

    /**
     * @param dtyKeyCode
     * @return
     */
    List<SysDirectory> queryParentDataByType(String dtyKeyCode);
}

